﻿#include "label.h"

Label::Label(QWidget *parent):QLabel(parent), m_level(1), m_textColor(Qt::black)
{
    setLevel(1); // 默认级别为 1
}

Label::Label(const QString &text, int level, QWidget *parent)
    : QLabel(text, parent), m_level(level), m_textColor(Qt::black)
{
    setLevel(level);
}
// 设置标题级别
void Label::setLevel(int level)
{
    if (level < 1 || level > 6)
    {
        level = 1; // 默认级别为 1
    }
    m_level = level;

    // 设置字体大小
    QFont font = this->font();
    switch (m_level)
    {
    case 1: font.setPointSize(32); break;
    case 2: font.setPointSize(28); break;
    case 3: font.setPointSize(24); break;
    case 4: font.setPointSize(20); break;
    case 5: font.setPointSize(16); break;
    case 6: font.setPointSize(12); break;
    }
    setFont(font);

    update(); // 触发重绘
}

// 设置文本颜色
void Label::setTextColor(const QColor &color)
{
    m_textColor = color;
    update(); // 触发重绘
}
// 重写 paintEvent 方法，自定义文本绘制
void Label::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);

    // 绘制文本
    painter.setPen(m_textColor); // 设置文本颜色
    painter.setFont(font()); // 使用当前字体
    painter.drawText(rect(), Qt::AlignLeft | Qt::AlignVCenter, text()); // 绘制文本
}
